home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / nrpas13.zip / EL2.DEM < prev    next >
Text File  |  1991-04-29  |  1KB  |  49 lines

  1. PROGRAM d6r28(input,output);
  2. (* driver for routine EL2 *)
  3. VAR
  4.    glit : integer;
  5.    glinext,glinextp : integer;
  6.    glma : ARRAY [1..55] OF real;
  7.    gla,glb,glakc : real;
  8.    ago,astop,s,x : real;
  9.    i,idum : integer;
  10.  
  11. FUNCTION func(phi: real): real;
  12. (* Programs using routine FUNC must declare the variables
  13. VAR
  14.    glakc,gla,glb : real;
  15. in the main routine. *)
  16. VAR
  17.    tn,tsq : real;
  18. BEGIN
  19.    tn := sin(phi)/cos(phi);
  20.    tsq := tn*tn;
  21.    func := (gla+glb*tsq)/sqrt((1.0+tsq)*(1.0+glakc*glakc*tsq))
  22. END;
  23.  
  24. (*$I MODFILE.PAS *)
  25. (*$I RAN3.PAS *)
  26.  
  27. (*$I TRAPZD.PAS *)
  28.  
  29. (*$I QSIMP.PAS *)
  30.  
  31. (*$I EL2.PAS *)
  32.  
  33. BEGIN
  34.    writeln('general elliptic integral of second kind');
  35.    writeln('x':7,'kc':10,'a':10,'b':10,'el2':11,'integral':12);
  36.    idum := -55;
  37.    ago := 0.0;
  38.    FOR i := 1 to 20 DO BEGIN
  39.       glakc := 5.0*ran3(idum);
  40.       gla := 10.0*ran3(idum);
  41.       glb := 10.0*ran3(idum);
  42.       x := 10.0*ran3(idum);
  43.       astop := arctan(x);
  44.       qsimp(ago,astop,s);
  45.       writeln(x:10:6,glakc:10:6,gla:10:6,glb:10:6,
  46.          el2(x,glakc,gla,glb):10:6,s:10:6)
  47.    END
  48. END.
  49.